home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
UTIL
/
SCREEN
/
FLD30
/
!FlDesk
/
!Help
next >
Wrap
Text File
|
1994-01-31
|
60KB
|
1,372 lines
-------------------------------------------------------
Flossy Desk - Ver 3.0 - (C) 1994 David Rushall
-------------------------------------------------------
* USE THIS SOFTWARE AT YOUR OWN RISK! *
* This software is not public domain *
-------------------------------------------------------
Designed to compliment RISC OS 3, FlDesk provides many
simple, useful utilities for the desktop in just 96K:
*Configurable icon-bar status display (free memory,
time, date, CPU usage, cache state); *Programmable
'root'-menu; *Wastebasket; *Shredder; *Various file
utilities; *Mouse position display; *CMOS RAM utilities;
Memo pad; *Programmable keypad; *Programmable screen
saver; *Alarm clock; *Hourly chime.
-------------------------------------------------------
FlDesk 3.0 - User Documentation
===============================
NOTE: This software was developed using RISC OS 3. Whilst it should operate
under RISC OS 2, it has not been tested fully.
Contents of this Document
=========================
* Conditions of use and disclaimer
* Upgrading from previous versions
* What is FlDesk?
* User manual
o Overview
o Mouse clicks on icon bar icons
o User-defined menu
o FlDesk menu
o Settings menu
o The keypad
o The memo pad
o File utilities
o The 'extend' function
o CMOS utilities
o Current directory selection
o Loading a sprite file
o Loading a basic program
o The wastepaper basket and shredder
o The screen saver
o Display options
o CPU meter calibration
* Extended user manual
o Defining a 'root' menu
o Simulating the v2.3 'Open Viewer' menu
o Defining the keypad
o Programming the screen saver
o Environment variables
o Alternative template files
* Troubleshooting
* Bugs and features
* Acknowledgements
* Revision history
* For the future
* ...And finally
Conditions of Distribution and Use, and Disclaimer
==================================================
FlDesk is Freeware, and _not_ public domain. This means it remains the
property of the author, but you may use and distribute this software
provided the following conditions are met.
* This software may _not_ be distributed for financial gain, all
copies must given away totally free of charge. Prohibited
distribution methods include: magazine 'cover disks', public domain
and shareware libraries charging for the service (except by direct
disk-for-disk exchange), as part of a commercial package, etc.
* Alterations to this software must be for personal use only. All
distributions must contain the original archive unaltered.
* ***USE OF THIS SOFTWARE IS AT YOUR OWN RISK!***
The user must accept all responsibility for any loss or damage
resulting from the use of this program, or this documentation,
either directly or indirectly. It has been tested and is in use
on my machine constantly, but there is always that remote chance
that things may go wrong!
Upgrading from previous versions
================================
When upgrading from a previous version of FlDesk, it is possible to retain
some of your previous configuration. If you wish to do this copy your old
version to a safe place and install the new. Open the application
directories of both the old and new versions. Copy the following files and
directories from the old version to the new:
Menu, Memo, Waste, Rc
NOTE: It is important that you do not copy any of the other files as the
old versions are not compatible with the new. In addition, the 'Dirs'
menu is no longer supported (see 'Simulating the Open Viewer Menu').
When you have copied the files, close the directories run the new version of
!FlDesk. The new version should retain your old memo pad and menu
definition. However, it is necessary to reset the display options and file
types.
For a quick guide to the changes to FlDesk, consult the History section
below.
What is FlDesk?
===============
A number of programs exist that provide various utility functions for the
RISC OS desktop. FlDesk is yet another of these that contains my personally
preferred mix. This software was developed with RISC OS 3 in mind, and as
such does not duplicate functions of software provided in ROM (excepting
perhaps the clock function of !Alarm and the screen saver). The functions
provided include:
* a small icon bar alarm clock with optional second hand and hourly
chime;
* a CPU usage meter;
* a free memory indicator;
* a X-windows style user-definable 'Root' *command menu;
* a user-definable function key pad;
* a programmable, multi-tasking screen saver;
* a drag-and-drop current directory selection;
* a quick means to load a sprite file into the system pool;
* a memo pad, able to automatically display reminders;
* a set of file utilities, including bulk date stamp and file typing;
* a 'Macintosh'-style wastepaper basket, with optional instant file
shredder;
* a window detailing the position of the mouse pointer;
* screen refresh and window cycling functions;
* a complete CMOS RAM restoration from disk function.
User Manual
===========
Overview
--------
To run Flossy Desktop Utilities simply double-click on the !FlDesk icon.
FlDesk should load and install itself on the icon bar. (HINT: FlDesk is of
most use when it is included in a !Boot file/application.)
NOTE: Although it is possible to run more than one FlDesk application on
a machine at once, this is not recommended. There are no benefits
of running more than one, and they may interfere with one another.
Once loaded, FlDesk displays an icon resembling a clock face on which there
may be up to four hands:
* two black hands (if enabled) show the current system time in the
traditional manner;
* a blue hand (if enabled) displays seconds;
* a red hand (if enabled) shows the current CPU usage.
In addition, a four digit number at the bottom of the face shows the amount
of free memory available to the desktop, and a two digit number will display
the day of the month, if these functions are enabled.
Finally, an orange '+' may indicate the ARM3 cache is enabled, whilst a '-'
indicates it is turned off.
The CPU usage is at a minimum when the red hand is horizontal, and pointing
to the left, and maximum when the hand is pointing right, horizontally. (See
later for details of how to calibrate the CPU usage for your machine.) One
should note that the CPU indicator is intended only to give a rough idea of
how much CPU time is currently being utilised.
On the left hand side of the icon bar, FlDesk may display a second icon
resembling a wastepaper basket. The operation of this will be described
below. To avoid confusion, references to 'the FlDesk icon' or the 'icon bar'
refer to the main clock face icon on the left, whilst 'the wastepaper
basket' refers to the icon on the right.
Mouse Clicks on the Icons Bar Icons
-----------------------------------
FlDesk responds to mouse clicks on the icon bar with a number of functions.
These are detailed in the table below and are described in later sections.
---------------------------------------------------------------------------
Icon Modifier Mouse button Action
--------------------------------------------------------------------------- FlDesk main None Select Open memo pad window.
Menu Open user-defined menu.
Adjust Begin drag to set current directory.
Shift Select Redisplay whole screen.
Menu Open FlDesk main menu.
Adjust Bring back window to front.
Waste basket None Select Open waste basket viewer.
Menu Open waste basket menu.
Adjust Open file utilities window.
---------------------------------------------------------------------------
The User-Defined Menu
---------------------
FlDesk is slightly unconventional for a RISC OS application in that the main
menu from the icon bar is user defined; the so called 'Root' menu. A file
within the FlDesk action describes the hierarchical structure of the root
menu, and the items within it. Each item has associated with it a *command
which will be invoked as a new task should that item be chosen by the user.
Items of the root menu be used to simplify a large number of operations;
anything from changing the state of an ARM3 cache to launching entire
applications. An item can execute a number of commands by placing them in an
Obey file and making the item execute it. A resource directory is provided
for this purpose.
One application of the root menu coupled with Obey scripts is to quickly
set up the desktop for different sessions. For example, create a desktop
!Boot file/application that does little more than launch FlDesk and then
place the *commands to configure the rest of your preferred environment in
an Obey script. When the computer is reset it is configured as a minimal set
up, but by simply choosing one menu item, one is able to launch any further
applications you normally use. This could even be used to support the
situation that a machine is used by different people, who prefer different
settings for !Configure for example.
Only the first item of the menu, 'FlDesk' is predefined. This leads to a
sub-menu which forms the 'main' menu of FlDesk. It is here that the
functions of FlDesk reside, including the all-important 'Quit' option.
NOTE: FlDesk v2.3 included a second user-defined menu 'Open Viewer'. This
contained directory paths as opposed to *commands and allowed
frequently used directories to be opened easily. This feature is
no longer supported. See the section on defining the 'Root' menu,
below, for details of how to simulate this functionality.
The 'FlDesk' Menu
-----------------
The 'FlDesk' menu (obtained by clicking 'Menu' over the FlDesk icon and
pulling the 'FlDesk' item right) contains a number of items that control the
operation of !FlDesk.
Info - leads to box giving some information about the program.
Alarm Clock - when ticked the FlDesk alarm clock function is enabled.
To set the alarm time, follow the arrow to the alarm time window.
Click on the 'H' icon to alter the hour, and 'M' to alter the
minutes ('Select' increases the value, 'Adjust' decreases). When
the alarm time is reached, FlDesk will sound the bell for one
minute, and the icon will display a speaker symbol. Alternatively,
FlDesk will display an alert window on the desktop at the specified
time, if the 'Alert' option on the alarm clock window is turned on.
File Utils - when chosen, opens the FlDesk file utilities window (see
below).
Mouse Watch - when chosen, opens the FlDesk mouse pointer information
window. This constantly details the X and Y coordinates of the mouse
pointer, and gives the identity of the window and icon the pointer
is currently over.
CMOS Utils - opens the CMOS utilities window (see below).
Memo Pad - when chosen opens the FlDesk memo pad window (see below).
Keypad - opens the FlDesk user defined function keypad (see below).
Settings - leads to a menu controlling the behaviour of FlDesk.
Quit - quits the FlDesk application.
The Settings Menu
-----------------
Following the 'Settings' item from the 'FlDesk' menu leads a menu controlling
the behaviour of FlDesk. This contains the following items:
Waste Basket - when ticked enables the 'wastepaper basket', which will
appear on the left-hand side of the icon bar (see below).
Display - leads to a window controlling the setup of FlDesk's icon bar
display (see 'Display Options').
Drop Action - leads to a menu controlling the action of FlDesk when a
directory or application are dropped on the icon bar. The action for
a directory or application directory are set independently and may
take one of the following values: Set Current - directory will be
chosen as the current directory; Open Dir - filer window will be
opened for the directory; Both - directory will be both opened and
chosen as the current directory.
Screen Saver - leads to a window controlling the animated screen saver
(see below).
Save Setup - stores the current setup, including CPU calibration, as the
default settings (used when FlDesk first runs).
Reload Setup - restores all FlDesk settings to the current default
values.
The Keypad
----------
The 'Keypad' option on the main menu causes the FlDesk keypad window to be
displayed. This contains a number of buttons which, when clicked on with the
mouse, cause a predefined sequence of key presses to be passed into the
application window that currently holds the input focus. The contents of the
window, and the key sequences associated with them, are defined in the
'Keypad' file (see below) and can be programmed to suit your taste.
Each button can enter a number of keypresses into the application. This
allows complex operations to be performed, such as for !Edit: F3(Save),
^M(Enter) causes the current document to be saved with one click; and
F4(Find), F2(Previous) ,F1(Go) repeats the last search and replace
operation.
The keypad is divided into a number of areas, allowing buttons to be defined
for a number of applications. A pop-up menu allows a choice between these,
and also allows the title bar of the window to be removed and replaced.
As supplied, the keypad is defined with three such areas:
-------------------------------------------------------------------
Area Button Description
-------------------------------------------------------------------
Edit The buttons in this are are designed
for the RO3 version of !Edit:
Hide Hide current selected block
Delete Delete " " "
Copy Copy " " "
Move Move " " "
Save! Save current file (immediately)
Find Opens find and replace dialog
Again Repeat last Find/Replace operation
Undo Undo last operation
Goto Goto line
ExT Expand tabs
Frm Format block
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Edit(small) The buttons in this are duplicate those
above, but are abbreviated and so are
much smaller. This looks nice in the
bottom left of the screen (covering a
bit of the drive icons) with the title
bar turned off.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Draw These buttons are designed for RO3
!Draw, as another example.
Hide Hide current selection
Delete Delete " "
Copy Copy " "
Edit Edit " "
Front Bring to front
Back Send to back
Group Group selection
Ungroup Ungroup selection
Snap Snap to grid
Grid Lock Toggle grid lock
Show Grid Toggle grid display
Select All Select all objects
Toolbox Toggle toolbox pane
Save! Save current drawing (immediately)
-------------------------------------------------------------------
The Memo Pad
------------
FlDesk includes a memo pad function that is useful for short 'to do' lists,
reminders and messages. This consists of a window with 8 boxes, each of a
maximum of 40 characters. The contents of the boxes may be altered at will.
The caret may be moved with the mouse, or by pressing the cursor and Enter
keys.
To facilitate the use of the memo pad as a prioritorised 'to do' list, the
memo items can be moved around. This is achieved by pressing 'Select' or
'Adjust' over the number to the left of an item, and dragging it to another.
This will have the effect of moving the item to the position dragged, whilst
the intermediate items slide up or down to make room.
Clicking on the 'Save' icon saves the contents of the memo pad into the
!FlDesk directory in order that it will be retrieved the next time !FlDesk
is run. When 'Save' is complete, the FlDesk icon will display a tick, and a
bell will sound.
NOTE: FlDesk will not warn you if you forget to save your altered memos.
It is, therefore, important that you press 'Save' as soon as you
made any alteration you wish to keep.
The memo pad features an 'Open automatically on start up' option which, if
activated when 'Save' is pressed, will cause the memo pad to be automatically
opened when FlDesk is run. This is especially useful when FlDesk is placed
in the desktop !Boot file.
The memo pad may be accessed through the menu, or by clicking 'Select' over
the FlDesk icon.
File Utilities
--------------
The 'File Utilities' window provides a number of timesaving features for
handling files. These are all operated by dragging the file(s) you wish the
operation to be performed onto the icon on the window representing the
operation.
The major file utility is the ability to quickly set the type of files in
bulk. Simply ensure the 'Set Type' option is on, and drag the group of files
onto the icon displaying the type desired.
The window allows the selection of one of twelve file types. This selection
can easily customised by selecting the 'Choose' option, and dragging
examples of other file types, on the icon you wish to change. Once you have
completed your choice, select 'Set Type' once more. The 'Save' button allows
the customised selection of file types to be saved as the default set.
An alternative way of assigning a file type to one of the file type icons is
to press 'Menu' over the desired icon. This brings up a menu with a single
writable icon. Simply enter the file type in hexadecimal. (Any invalid
characters will be interpreted as zeros.)
At the bottom of the window there are three boxes. Dropping a file, or files,
onto these boxes causes the following operations:
Stamp - The files are stamped with the current time and date. This is
useful for forcing 'make' to recompile source files, for example.
Access - Files dragged onto this icon will have their access
attributes flags set as displayed in the three boxes at the bottom
of this icon. Simply click 'Select' or 'Adjust' on these boxes to
toggle their values.
Extend - Files dragged onto this icon are renamed following simple
rules. This is designed to ease the movement of files between
RISC OS and other operating systems, especially MS DOS. The
function is detailed in the section below.
As of version 2.4, FlDesk supports a second method of setting the type,
stamp or access bits of a number of files. By dragging a file type, stamp
access or extend icon to an open directory, the operation is applied to all
objects in that directory. This can be useful to quickly stamp source files
for 'make', set the types of files extracted from a non-RISC OS archive to
'Text', or lock all the files within a directory. However, no confirmation
will be asked for for the operation so use it with care.
The file utilities window may be obtained through the FlDesk menu, or by
clicking 'Adjust' over the wastepaper basket.
The 'Extend' function
---------------------
Files dragged onto the 'Extend' icon of the File Utilities window are
renamed according to simple rules. The new name is a function of their
original name, the contents of the text box at the base of the 'Extend'
icon, and the adjacent button ('Pre' or 'Suf'). It is designed to ease the
transfer of naming conventions between RISC OS and MS DOS (and hence UNIX
etc).
A full description of the function is given below, but the following
examples should give an idea of it's applications.
* To rename a large number of C source files: imported from
another machine as '*/C' (DOSFS notation), and renamed as 'C.*'
1 Empty the 'Extend' text box.
2 Click on 'Suf'/'Pre' until it displays 'Suf' (suffix).
3 Create a 'C' directory.
4 Copy the '*/C' files into this directory.
5 Drag the files onto the Extend icon - they will lose
their extension.
6 Repeat from 3 for the '*.H' files, etc.
* To rename a large number of LaTeX files: mydoc/* to mydoc.*
1 Empty the extend text box.
2 Click on the 'Suf'/'Pre' until it displays 'Pre' (prefix).
3 Create a directory, 'mydoc'.
4 Copy the 'mydoc/*' files into this directory.
5 Drag the files onto this directory - they will lose
their name, retaining their DOSFS extension as a name.
* To change the extension of a number of DOS files: */DOC to */TXT
1 Put the string 'TXT' into the extend text box.
2 Click on 'Suf'/'Pre' until it displays 'Suf'.
3 Drag the '*/DOC' files onto the extend icon, their
extensions will be changed.
* To export C source files: C.* to *.C
1 Put the string 'C' into the extend text box.
2 Click on 'Suf'/'Pre' until it displays 'Suf'.
3 Drag the files onto the extend icon - they will have
the suffix '/C' added to their name.
* To export LaTeX files: mydoc.* to mydoc/*
1 Put the string 'mydoc' into the extend text box.
2 Click on 'Suf'/'Pre' until it displays 'Pre'.
3 Drag the files onto the extend icon - they will be renamed
to 'mydoc/*', where * is the original name of the file.
The 'Extend' icon can also be used for many other purposes. However, one must
realise that the 10 characters of the RISC OS file name cannot contain the
12 characters (including the '/') of the DOSFS file name. You may find,
therefore, that your extension gets truncated. To prevent this, copy the
files to a DOS disk before you add the extension.
For clarity, the following rules define the function by which 'Extend'
generates the new names:
* The filename is scanned for the DOSFS extension delimiter '/',
if it is not found it is added to the file name, at the end if
in 'Suf' mode, or at the beginning if in 'Pre' mode.
* Characters in the filename preceeding the '/' are taken as a
name$, characters after as extension$.
* Depending on the state of 'Suf'/'Pre' the extension$, or the
name$ is replaced by the contents of the text box respectively.
* If either name$ or extension$ is empty, the new filename is
taken to be the non-empty one. If they are both non-empty,
the new filename is given by (name$+'/'+extension$).
CMOS RAM Utilities
------------------
RISC OS 3 includes a vastly improved !Configure application. This enables
the contents of the CMOS RAM to saved into a file of type &FF2. However,
when these files are dragged back into !Configure, the application only
restores those sections of RAM it understands. Whilst this is desirable for
naive use, it does mean that configurations such as the number of
ADFSBuffers and non-Acorn hardware are omitted. FlDesk provides a facility
to get round this by allowing the entire CMOS RAM to be updated from an
!Configure file.
To display the CMOS utilities window, drop a Configure file on the FlDesk
icon, or choose 'CMOS Utils' from the menu. The window contains a
hexadecimal display of the contents of the file, or of the current CMOS RAM.
This is indicated in the top line of the window. If a Configure file has
been loaded into FlDesk, those bytes that differ in the file and the current
CMOS RAM are highlighted by a preceding '>' character.
Pressing 'Menu' over the CMOS window brings up a menu containing three options.
View RAM - (Re)display the current CMOS RAM.
View Buffer - Display the currently loaded !Configure file.
Update RAM - Install the currently loaded !Configure file into the CMOS
RAM in it's entirety. THIS WILL DESTROY THE CURRENT SETTINGS IN CMOS
RAM - DO NOT PERFORM THIS OPERATION UNLESS YOU ARE SURE YOU DONT MIND!
NOTE: The 'Current CMOS RAM' display will not automatically update if the
CMOS RAM is altered by another application. To ensure you are looking
at an up-to-date display, click on 'View RAM'.
Current Directory Selection + Filer Opening
-------------------------------------------
FlDesk provides a means by which the current system directory can be easily
set, by simply dragging a directory, or application directory, onto the
FlDesk bar icon. In addition, FlDesk will remember the name of the last
directory dropped onto it, making it available to the user in the directory
selection menu (see 'Simulating the Open Viewer Menu').
As an alternative to dropping the desired directory onto the FlDesk icon,
one can drag the FlDesk icon itself onto an open directory viewer. This is
achieved by using 'Adjust', and _not_ 'Select'. The current directory will
become the open window the icon is dropped onto.
When FlDesk sets the current directory, the icon bar icon will temporarily
display a tick (€), and a beep will sound.
As of version 2.4, the user can specify the action FlDesk will perform when a
directory or application is dropped on the icon bar (see 'The Settings Menu').
Loading a Sprite File into System Pool
--------------------------------------
Any sprite file may be loaded into the system pool by simply dragging it
onto the FlDesk icon. This can be useful to try out new sprites when
developing new programs, or to reset unwanted alterations made to the system
sprites by some applications.
NOTE: The sprite file is loaded with the 'IconSprites' command. It is
therefore unsuitable for resetting the window 'tool' sprites under
RISC OS 3.1
Loading a Basic program into BASIC
----------------------------------
Dropping a file of type BASIC onto the FlDesk icon will cause the command
'*BASIC -load <filename>' to be invoked.
Wastepaper Basket + Shredder
----------------------------
FlDesk now features a 'wastepaper basket' function. When this is enabled,
FlDesk displays a second icon, featuring a wastepaper basket, on the left
hand side of the icon bar. Files dragged onto this icon will be moved into a
reserved directory (normally inside the FlDesk application itself), and so
appear deleted. Naturally, if files placed inside the waste basket are not
deleted, they will continue to eat up valuable disk space.
When the waste basket contains files, the icon displayed on the icon bar
represents this by showing papers emerging from the top of the basket.
A third icon is displayed when the shredder is enabled. This features a
piece of paper going into a shredding machine. When this icon is displayed,
any files dragged onto it will be deleted immediately. NO WARNING IS GIVEN.
FILES WILL BE DELETED EVEN IF THEY ARE LOCKED! This can be useful for
deleting directory structures containing locked files, but _please_ be
careful!
Files placed inside the waste basket can be retrieved at any time. This is
most easily achieved by clicking 'Select' over the basket icon. This causes
a filer window to be opened showing the contents of the basket. Retrieval
is achieved by simply copying or moving the required file to the destination
directory as normal. In addition, individual items can be permanently
deleted from the waste basket from this window, perhaps by dragging them
onto the shredder.
The waste basket has it's own pop-up menu. This contains four items:
Info - leads to a window displaying details about FlDesk.
Shredder - toggles the choice between 'wastepaper basket' and 'shredder'
operation.
Empty Waste - leads to a menu containing a single item, 'Do it!'. When
this item is chosen, the entire contents of the FlDesk wastepaper
basket are deleted, permanently!
Count Waste - when selected, FlDesk will cause a count of the contents of
the waste basket - useful to find out how much of your valuable
hard-disk space is being taken up by rubbish.
Clicking 'Adjust' on the waste paper basket causes the 'File Utilities'
window to be opened.
If you do not wish the wastepaper basket to be active, it is possible to
configure the wastepaper basket off (see above).
The Screen Saver
----------------
A new feature of FlDesk is the programmable screen saver. It is controlled
by the screen saver window in the settings menu. The up and down arrows set
the time delay after a key press or mouse movement before the saver cuts in.
A number of settings are available from 30 seconds to 30 minutes. To disable
the screen saver completely, press the down arrow until 'Off' is displayed.
The screen saver on/off/delay will be saved as part of the usual FlDesk save
setup option.
The screen saver window also contains two icons for selecting the animation
that will be displayed when the saver is running. When loading, FlDesk
searches for a file, 'Saver', containing a screen saver animation. If found,
the module is loaded and the second icon on the settings window will display
the name of the animation.
The 'Default saver' is built-in to FlDesk and is always available.
Displaying the switcher icon or a picture a sheep, and periodically moving
it, this animation uses very little processing time. It may therefore be a
good idea to select this animation if you wish to save CPU time.
If a custom animation is available, FlDesk will use it by default. If you
wish to disable the custom animation for longer than one session, rename the
'Saver' file, perhaps to 'Saver-'. The next time FlDesk is run it will
quietly fail to load a custom animation and use the built-in one as a
default.
When enabled, the screen saver will take over the display after the user has
been inactive for the specified time, or the mouse is left in the bottom
left of the screen. During the animation, other applications continue to run
but with some processor time 'wasted' by the animation. To restore the
screen, move the mouse or press a key.
NOTE: When the saver is running, a window is opened covering the entire
screen. Should any applications open windows whilst the screen is being
saver, such as !Alarm for example, this will appear over the saver window.
Depending on the animation being used ('Starry Night' for example) strange
effects may occur. Fortunately, will should be restored to normal when you
move the mouse.
Display Options
---------------
The 'Display' window contains a number of items that control the behaviour of
FlDesk itself:
CPU Usage - enables the CPU usage needle on the icon bar display.
Free Memory - enables the free memory numerical display.
Cache State - enables the ARM3 cache state indicator.
Time - this item controls the display of the system time. There are three
possible values: Off - no time display; Hands - analogue clock
display; Digital - digital clock display.
Second Hand - as above, but for the second hand.
Day of Month - enables the day of the month display.
Hourly Chime - when this item is set, FlDesk will cause a system beep to
occur on the hour, effectively giving the clock an hourly chime.
Update - allows the selection of the speed at which the CPU meter is
updated. When fast, the needle may be jigger a lot, but a slow update
will tend to be insensitive and respond slowly to changes in CPU
utilisation.
Face - clicking the arrows selects which a background icon onto which the
display of hands etc will be displayed.
NOTE: The ARM3 cache indicator may crash FlDesk on an ARM2 machine. As
FlDesk cannot (yet) automatically detect an ARM3, a system variable
is used to control whether the cache indicator may be selected or not.
If the cache indicator icon is disabled and you have an ARM3 machine
(or if the indicator is enabled and you have an ARM2) it is
recommended you alter this variable in the !Run file (see below
for details).
FlDesk can only display two digital values at once, that is only two of the
following may be displayed simultaneously: digital time, day of the month
and free memory. A face icon, 'Digital', is provided for this purpose. Other
than that, FlDesk allows any combination of the display options to be used.
However, the background face icons may be unsuitable for certain types of
display. As a guide, the following table gives recommended combinations. In
this table, the symbols detail whether an item is best be turned on (1) or
off (0), when a given face icon is used. If no recommendation is given (?),
it is left to the personal choice of the user:
-------------------------------------------------------------------------------
Face Description CPU Free Hour Seconds
-------------------------------------------------------------------------------
Blank all items appear directly on icon bar ? ? 1 ?
Square all items in square recess ? ? 1 ?
Circle items in circular recess ? 0 1 ?
Digital dual recesses for twin digital display 0 ? 0 0
CPU recessed semi-circular meter 1 0 0 0
Free recessed digital display 0 1 0 0
Meter combined meter and digital display 1 1 0 0
Flossy a sheep, in relief 0 0 0 0
Twin a double-width icon, clearer display 1 1 1 ?
-------------------------------------------------------------------------------
Use this table to decide which display features you wish to use. If you
regularly use '!Alarm', or some other desktop clock, you probably don't need
to use the time display, and may just wish the use the CPU and free memory
indicators. If, on the other hand, you use '!FreeMem' or '!Usage' you
probably will not want to duplicate these.
When you select a icon background from the 'Face' menu, !FlDesk selects a
preset selection of the display options, that suit that face. You are,
however, free to alter the options from this preset by clicking the relevant
items.
Calibrating the CPU meter
-------------------------
The CPU usage indicator provides only provides a rough guide to the amount
of CPU time being used. However, it is possible to calibrate it to your
preferred set up, in order get a more useful reading. This is achieved by
allowing FlDesk to sample two states of CPU usage and using the range
between these to produce a full deflection of the needle.
By clicking the toggle icon on the display options window, one exposes two
further buttons that control the calibration procedure.
In order to calibrate the CPU meter, it is first necessary to choose a base
state that will be represented by a reading at the button the scale. You may
choose this to be your machine in the smallest screen mode, with minimal
applications and modules loaded. Alternatively, you may select the normal
configuration of your machine after a reset.
To set the lower bound of the CPU needle, place the machine in your chosen
base state, and click on the 'Idle' item from the display options window.
FlDesk begins sampling the state of the machine, and the desktop continues
to multi-task. DO NOT DO ANYTHING! FlDesk samples the machine in the idle
state for a short time in order to obtain an average reading. After a while a
message window will appear informing you this process is complete.
It is now necessary to perform the same operation in an 'extremely' busy
state. Choose the machine state at which you wish the CPU meter to give a
full deflection. You will probably want to make the machine do as much as
possible at once, such as running a PC emulator, or an infinite BASIC loop
in a task window, or a disk copy (under RISC OS 3). Once you have done this,
choose the 'Heavily Loaded' item and wait for the end of calibration message
once again. Do not be surprised if this takes a lot longer than on the idle
machine - please be patient.
Once the CPU meter is calibrated, you may save your setting as part of the
default setup, by choosing the 'Save Setup' menu item.
NOTE: Due to internal changes with the method of CPU meter calculation, you
may notice that the display is more sensitive than under FlDesk v2.3.
If you wish to adjust this behaviour slightly, try calibrating the
'Idle' bound with a small background process running. An easy way to
do this is to run a second copy of FlDesk.
Extended User Manual
====================
Defining a 'root' Menu
----------------------
NOTE: The format of the menu files have changed, and are not backward
compatible with versions of FlDesk previous to version 2.0.
The file !FlDesk.Menu defines the items of the 'Root' menu, and the
*commands associated with them. The menu may be a hierarchical structure.
Each line in the menu definition file contains an item, and a string. These
are separated by a '|' character. Leading spaces are ignored in both fields.
For example, the following line defines the menu item 'Cache on', which when
selected will execute '*cache on'.
Cache on| cache on
Nested menus are declared with special keywords; 'MENU' and 'END'. These
_must_ appear at the start of the command string (again ignoring leading
spaces). For example, the following declares a sub-menu 'ARM3 Cache', which
contains the items 'On' and 'Off'.
ARM3 Cache| MENU
On| cache on
Off| cache off
ARM3 Cache| END
Note that the item text preceding an 'END' is ignored, but it may be useful
to name the item as in the above example to keep track of your 'END'
commands. Menus may be nested to any depth, eg:
SubMenu| MENU
...
SubSubMenu| MENU
...
SubSubMenu| END
...
SubMenu| END
The menu definition ends at the end of the 'Menu' file, or when an 'END'
commands is encountered that relates to the main menu. It is recommended
that your always include an 'END' at the end of the menu definition in order
that any subsequent blank lines are avoided:
| END
A further keyword 'DOTS' specifies that a dotted line is to appear at that
position in the menu. As with 'END', 'DOTS' must appear after the '|' symbol.
Any text to the left of the '|' is ignored.
| DOTS
Finally, there is yet another special keyword that can be used in the menu
definition file. 'REDISPLAY' is a pseudo command that which forms a menu
item that can be used to totally redraw the desktop, eg:
Redraw All| REDISPLAY
Any changes made to the menu definition files will not be recognised until
the next time you run FlDesk.
NOTE: There are a number of limits to the size of objects definable in the
menu definition files. Exceeding them may cause unpredictable
results. It is still possible to built large menu structure, however
FlDesk may be unable to store them unless it's WimpSlot size is
increased. To increase the WimpSlot size, load !FlDesk.!Run into
!Edit and change the values '96' to a larger multiple of 32. The
limits are currently:
Length of menu item name : 12 chars
Number of items per menu : 16
Length of command string : 128 chars
Maximum depth of nesting : no limit (except memory)
The following pair of doted lines contain an example 'Menu' file:
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Task Window| MENU
1.0Mb| taskwindow echo -wimpslot 1000K
2.0Mb| taskwindow echo -wimpslot 2000K
3.0Mb| taskwindow echo -wimpslot 3000K
| END
ARM3 Cache| MENU
Cache On| cache on
Cache Off| cache off
| END
| DOTS
Redraw| REDISPLAY
Help| <fldesk$rc>.help
| END
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Often, you may wish to execute a series of commands from a menu item. This
is easily implemented by placing the commands in an obey file, and running
this file from the menu. FlDesk provides a convenient place to store such
files by means of a resource directory. This is called 'Rc' and is contained
inside the FlDesk application. It's path name is given by the system
variable 'FlDesk$Rc'.
NOTE: When launching multi-tasking applications from an Obey file in the
'Rc' directory, it is necessary to use the 'wimptask' prefix. See
your RISC OS user guide for more details.
Simulating the 'Open Viewer' Menu of v2.3
-----------------------------------------
FlDesk v2.3 included a second user-defined menu 'Open Viewer'. This
contained directory paths as opposed to *commands and allowed frequently
used directories to be opened easily. This feature is no longer supported,
but can easily be simulated using the 'Root' menu structure.
To convert an existing v2.3 'Dirs' file, include it as a sub-menu of 'Menu'
type the commands 'filer_opendir' before each directory path. The action of
the old 'Last Dropped' option can also be provided as the
'FlDesk$CurrentDir' environment variable still points to the last directory
set as the current directory by FlDesk.
The following is an example 'Open Viewer' sub menu. Including this into your
'Menu' file will create a submenu similar to the example submenu from v2.3.
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Open Viewer| MENU
Last Dropped| filer_opendir <FlDesk$CurrentDir>
| DOTS
Current (@)| filer_opendir @
Parent (^)| filer_opendir ^
..!FlDesk.Rc| filer_opendir <FlDesk$Dir>.rc
Root| filer_opendir adfs::4.$
Open Viewer| END
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Defining the Keypad
-------------------
The keypad can be programmed with up to 60 individual buttons, each of
which can issue up to 6 key presses when click on with the mouse. In order
to support a number of applications with one keypad, the buttons can
be divided into, up to 10, areas. The user chooses between areas using a
pop-up menu.
The file '!FlDesk.Keypad' describes the keypad in a similar manner to the
'FlDesk.Menu' file for the pop-up menu. It is read on startup so you will
have to quit and re-load FlDesk to try out your changes.
NOTE: FlDesk is not clever at reading its setup files - define your keypad
careful else FlDesk may crash when loading, or when a certain keypad buttons
are pressed.
Buttons are defined by a label and a key sequence on a single line,
separated by a vertical bar. The bar should immediately follow the label
name, but any number of spaces can proceed the label name and the key
sequence. The width of the button is taken from the length of the label.
The key sequence is a comma separated list of key definitions. Keys can
be defined in a number of ways, as given in the following table:
--------------------------------------------------------
Type Examples
--------------------------------------------------------
Quoted ASCII character (just the one) 'x'
Decimal ASCII code 27
Control-key ^M
Function key F6
Control-function key ^F12
Shift-function key ~F7
Control-Shift-function key ^~F4
--------------------------------------------------------
Here are some example button definitions:
Hide| ^Z
Save!| F3,^M
Again| F4,F2,F1
Buttons are arranged in lines. To begin a new line use an empty label
followed by the special directive 'ROW', ie:
| ROW
New areas are declared with a similar directive, 'AREA'. In this case the
label gives the area name, as will appear on the pop-up menu. Eg:
Edit| AREA
Each area will be automatically sized to display the longest row of buttons
within it. Note that no scroll bars are used, so very long rows may go over
the end of the screen.
The following is a complete keypad definition, the standard pad described in
the main part of the manual, above.
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Edit| AREA
Hide| ^Z
Delete| ^X
Copy| ^C
Move| ^V
Save!| F3,^M
| ROW
Find| F4
Again| F4,F2,F1
Undo| F8
Goto| F5
ExT| ^~F1
Frm| ^F6
Edit(Small)| AREA
Hde| ^Z
Del| ^X
Cpy| ^C
Mve| ^V
Sv!| F3,^M
Fnd| F4
Agn| F4,F2,F1
Udo| F8
Go| F5
ExT| ^~F1
Frm| ^F6
Draw| AREA
Hide| ^Z
Delete| ^X
Copy| ^C
Edit| ^E
Front| ^F
Back| ^B
Group| F4
Ungroup| ~F4
| ROW
Snap| ~F5
Grid Lock| ~F1
Show Grid| F1
Select All| F5
Tool box| ^F1
Save!| F3,^M
| END
-------- 8< -------- 8< -------- CUT HERE -------- 8< -------- 8< --------
Programming the Screen Saver
----------------------------
The 'Saver' file contains the definition of the custom screen saver animation
and is inspected during the FlDesk start up sequence. If you wish to use your
own animation you must write a BASIC program containing the following
functions: FNsaverInstall(), FNsaverOpen(), FNsaverPoll, FNsaverClose.
The file 'SaverBlank' contains a description of these functions and is itself
a screen saver module - a simple blank screen. The file 'StarNight' may also
be of interest, giving an annotated version of the 'Starry Night' module.
When writing your module, you should consider the following:
o The screen saver should work in _any_ WIMP mode - ie it should work in
all colour modes and resolutions.
o The saver should multi-task nicely, and so should not hog the CPU for
large periods of time during the FNsaverPoll call.
o The saver code and has to fit into the memory allocated to the FlDesk
application. FlDesk provides your saver with a 5000 byte buffer. Using
additional storage and large amounts of code may require a the FlDesk
WimpSlot to be increased in the !Run file.
If you write any good modules, please send them to me. I'd like to include a
selection with future releases and it may also encourage me to write a browser
so you can switch between them while FlDesk is running. Have fun!
Environment Variables
---------------------
FlDesk sets and uses the following environment variables in the !Run file.
FlDesk$Dir - set to application directory (should not be
altered).
FlDesk$Rc - set to FlDesk's resource directory - a directory
where user scripts and files may be placed for use
with the 'Root' menu system. Normally set to
'<FlDesk$Dir>.Rc' this should probably not require
alteration.
FlDesk$CurrentDir - set to the last directory to be dropped on the FlDesk
icon. This may be altered in the !Run file to set
a suitable default for your system.
FlDesk$Waste - set to the directory used as the waste basket. This
_must_ exist at all times, and point to a valid
writeable directory, for the wastepaper basket to
operate.
FlDesk$Flags - when set to '1', FlDesk will allow the use of the
ARM3 cache indicator light. If your machine does not
have and ARM3, set this variable to '0'. The !Run
file also sets other bits in the flags.
Alternative template files
--------------------------
FlDesk is supplied with two alternative sets of templates: a traditional
style set, for use with RO2 machines and by those who simply prefer 2D
style windows; and a 3D style set, using the RO3 3D icon borders. The
templates are identical operationally and may be exchanged at will.
To change the template set used, simply copy either !FlDesk.3DWindows
or !FlDesk.2DWindows, as preferred, to the file !FlDesk.Templates.
The chosen set will be used on the next invocation of FlDesk.
Troubleshooting
===============
If you cant get FlDesk to run correctly then the following checklist might
help:
* Check the bug list below - you might be suffering from a known bug.
* Examine the !FlDesk.!Run file:
o Check the environment variables listed above are all
initialised to reasonable values (especially FlDesk$Flags,
and check the wastepaper basket directory exists).
o Check the wimpslot: FlDesk normally requires 96K to run
correctly, but this may need increasing if you are defining
a large menu structure.
* Check that the files, !FlDesk.Setup, !FlDesk.Memo, !FlDesk.Menu and
!FlDesk.Keypad exist. Try replacing each one in turn with the original
versions distributed in the archive.
* Rename the !FlDesk.Saver to something else, and try without.
* Copy 2DWindows to !FlDesk.Templates.
Bugs and Features
=================
Although basically OK, FlDesk has a few annoying features that I have not
yet had the time or inclination to rectify...
* The second hand and cache indicator are not visible in two colour
modes, under the standard desktop palette. This can be corrected by
playing with the palette tool.
* FlDesk has a few limitations which may cause unpredictable results
if exceeded:
- 12 characters per menu-item name.
- 16 items per user defined menu (although nested can be to
any depth).
- 128 characters per command line string/directory name.
- 60 buttons on keypad in up to 10 areas, 6 keys presses per
button.
* The wastepaper basket does not 'watch' external operations on the
contents of the waste directory. It may, therefore, fail to notice
that the directory has become non-empty, or empty and display the
wrong form of waste basket icon. This can easily be corrected by
clicking on the basket icon.
* FlDesk is not tolerant of errors in the setup files: 'Menu', 'Keypad',
'SetUp' and 'Memo'. It is recommended that 'Memo' and 'SetUp' are
not modified (except through the normal use of FlDesk) and that
'Menu' is modified with care.
* Selecting 'Cache State' indicator on an ARM2 machine may crash
FlDesk. Since FlDesk cannot yet recognise the processor directly,
it is necessary to manually set a variable (in the !Run file) to
enable/disable the 'Cache State' icon.
Acknowledgements
================
Being new to the Acorn world, and unable to afford the PRMs yet, I would
like to thank the following people for distributing the named BASIC
programs. It is from the study of their code that I have been able to scrape
my knowledge about the RISC OS desktop.
Emmet Spier (!IconClock)
Jason Williams (!Indicator)
Joe Taylor (!WimpEd)
Steve Ellwood (!Stargazer)
Acorn (!Patience,!Usage,!Magnifier,!Clock,!Madness)
In addition, I would like to thank the following people for their suggestions
for improvements, some of which I have implemented, some of which I have
improved upon, and some of which I have left until next time...
Nick Glencross
Dennis Howe
Ian Radford
Vaughan Marks
Rahul Mehra
Alan Gentle
Nat Queen
I would also like to thank Jo for her patience.
Revision History
================
0.1 - Sept 92 - Conception: an icon bar clock + CPU meter.
0.2 - Sept 92 - General extensions:
- User definable command ('root') menu.
- CPU meter calibration.
- Save/restore of setup.
0.3 - Oct 92 - General extensions:
- Current directory selection.
- User definable directory menu for open file viewer and current dir.
- CPU meter update speed adjustment.
0.4 - Oct 92 - General extensions:
- Numerical free memory display.
- General menu restructuring.
- Hourly chime function.
- Alternative 'clock' face selection.
- Load sprite file into system pool function.
0.5 - Oct 92 - Improvements:
- Drag icon with 'Adjust' onto directory display - alternative
method for current directory selection.
- Hourglass turned on during startup procedure.
1.0 - Nov 92 (1st release) - Final extensions and improvements:
- Alarm clock function.
- !Help file with user documentation.
- New clock face sprites.
- General tidying up.
1.1 - Jan 93 - Number of small improvements:
- Free memory numbers coloured green for better visibility.
- Alarm clock automatically set when alarm time adjusted.
- Adjust on alarm set icons decreases value.
- Hourglass switched on during menu invoked commands.
- Auto open of current directory on change.
- External commands invoked through 'wimptask' to allow multi-tasking
applications to be invoked, and to protect FlDesk from errors from
the child task.
2.0 - Jan 93 - Hierarchical menu structure, memo pad function +
number of small improvements:
- Visual and audio conformation for current directory change.
- Visual alarm clock notification, including optional 'alert' box.
- New 'Flossy' icon.
- Menu file format more friendly.
2.1 - Feb 93 - General bug fixes and tidy up.
2.2 - Feb 92 - Added mouse window and file utilities.
2.3 - Mar 93 - Wastepaper basket added + a number of small improvements:
- 'Menu' on file type icon allows direct entry of file type in hex.
- Sprites put in 'Stamp' etc icons.
- 'Access' function added to file utilities.
- 'DOTS' directive added to menu definition files.
- Menu restructured again.
2.4 - Mar 93 - CMOS functions added, and much more:
- Main null event poll code in ARM code, optimised each time the
setup is changed - less bandwidth required for display.
- Display options placed in window as opposed to menu.
- ARM3 cache indicator added.
- Null events disabled when not needed.
- Stamp, Settype and Access of all items in an open directory display
in a single drag.
- Count of contents of wastepaper basket.
- Double width icon facility for clearer display of all values.
- Day of the month display.
- Configurable behaviour for dropping of directories and applications
on the icon bar.
- Dropped 'Open Viewer' menu in favour of quick memo pad opening.
- Memo pad items can be dragged up and down.
- Access settings for public files added.
- 'Extend' utility to quickly add/remove DOSFS filename extensions.
- File type selection + waste basket fixed to work properly with RO3
FS image files and SparkFS etc.
- Waste icon no longer moves around every time you select 'Shredder'.
2.5 - Apr 93 - A few tweaks and enhancements:
- 'Extend' operation extended :-)
- Digital clock display option.
- '*basic -load' function
- 3D templates.
- Hires sprites loaded if FlDesk invoked in a hires mode.
3.0 - Jan 94 - A reworking for a new distribution:
- Programmable animated screen saver.
- User-defined function-key pad.
- Shift-mouse click on main icon:
-menu -> FlDesk menu directly;
-select -> redraw screen;
-adjust -> back to front.
- !Help support.
- Desktop save support.
- Fixed bug in waste basket.
- Nicer redisplay function.
- Tidied up clock hands a bit.
- Improved some hi-res sprites.
- Iconised window sprite.
- 3D templates modified to compliment !NewLook more closely.
- Auto-repeat on alarm-clock buttons etc.
- Pass on unused keypresses.
- Cursor keys move caret in memo-pad.
For the Future
==============
I have a number of improvements in the pipeline that might be coming to an
'FlDesk' near you soon:
* automatic ARM3 detection;
* more powerful file functions to complement 'Extend';
* enhanced user defined menus;
* auto-saving memo pad;
* !Help support for menu items;
* any good suggestions _you_ might have!
...And Finally
==============
This software is free: provided the above conditions are met, you may use it
and distribute it at will. Even so, if you like this software and use it
regularly, I'd love to hear from you! Please send me a picture postcard of
where you live, with any comments, bugs and suggestions for enhancements.
David Rushall,
Markers End,
Mounts Lane,
Newnham,
Northants,
UK.
Alternatively, you can contact me through E-mail until Sept 1994:
drushall@cs.man.ac.uk
--David Rushall, January 1994--